package com.ruoyi.central.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.validation.group.InsertGroup;
import com.ruoyi.common.validation.group.UpdateGroup;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Set;

/**
 * 产品对象 top_central_product
 *
 * @author SunLuQuan
 * @date 2022-06-22
 */
@Data
@TableName("top_central_product")
public class TopCentralProduct extends BaseEntity {

private static final long serialVersionUID = 1L;

    /** 编号 */
    @TableId
    @Length(min=0,max=10,message="编号 数据长度不能大于 10")
    private Integer id;

    /** 产品批次号 */
    @Excel(name = "产品批次号")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "产品批次号不能为空")
    @Length(min=0,max=50,message="产品批次号 数据长度不能大于 50")
    private String batchNo;

    /** 产品名称 */
    @Excel(name = "产品名称")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "产品名称不能为空")
    @Length(min=0,max=50,message="产品名称 数据长度不能大于 50")
    private String name;

    /** 产品类型 */
    @Excel(name = "产品类型")
    @NotNull(groups = {InsertGroup.class,UpdateGroup.class},message = "产品类型不能为空")
    @Length(min=0,max=10,message="产品类型 数据长度不能大于 10")
    private Integer typeId;

    /** 对应typeId 产品类型对象 */
    @TableField(exist = false)
    private TopCentralProductType productType;

    /** 合成加工状态 */
    @Excel(name = "合成加工状态")
    @NotNull(groups = {InsertGroup.class,UpdateGroup.class},message = "合成加工状态不能为空")
    @Length(min=0,max=1,message="合成加工状态 数据长度不能大于 1")
    private Integer syntheticStatus;

    @TableField(exist = false)
    private Set<TopCentralProductType> productTypes;
}
